home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / usr_-_Usr_Files / INCLUDE / VGAKEYBO.{4D < prev    next >
Text File  |  1999-09-17  |  5KB  |  196 lines

  1. /* Keyboard interface for svgalib. */
  2. /* Can be used independently. */
  3.  
  4. #ifndef VGAKEYBOARD_H
  5. #define VGAKEYBOARD_H
  6.  
  7. #ifdef __cplusplus
  8. extern "C"
  9. {
  10. #endif
  11.  
  12. #define SCANCODE_ESCAPE            1
  13.  
  14. #define SCANCODE_1            2
  15. #define SCANCODE_2            3
  16. #define SCANCODE_3            4
  17. #define SCANCODE_4            5
  18. #define SCANCODE_5            6
  19. #define SCANCODE_6            7
  20. #define SCANCODE_7            8
  21. #define SCANCODE_8            9
  22. #define SCANCODE_9            10
  23. #define SCANCODE_0            11
  24.  
  25. #define SCANCODE_MINUS            12
  26. #define SCANCODE_EQUAL            13
  27.  
  28. #define SCANCODE_BACKSPACE        14
  29. #define SCANCODE_TAB            15
  30.  
  31. #define SCANCODE_Q            16
  32. #define SCANCODE_W            17
  33. #define SCANCODE_E            18
  34. #define SCANCODE_R            19
  35. #define SCANCODE_T            20
  36. #define SCANCODE_Y            21
  37. #define SCANCODE_U            22
  38. #define SCANCODE_I            23
  39. #define SCANCODE_O            24
  40. #define SCANCODE_P            25
  41. #define SCANCODE_BRACKET_LEFT        26
  42. #define SCANCODE_BRACKET_RIGHT        27
  43.  
  44. #define SCANCODE_ENTER            28
  45.  
  46. #define SCANCODE_LEFTCONTROL        29
  47.  
  48. #define SCANCODE_A            30
  49. #define SCANCODE_S            31
  50. #define SCANCODE_D            32
  51. #define SCANCODE_F            33
  52. #define SCANCODE_G            34
  53. #define SCANCODE_H            35
  54. #define SCANCODE_J            36
  55. #define SCANCODE_K            37
  56. #define SCANCODE_L            38
  57. #define SCANCODE_SEMICOLON        39
  58. #define SCANCODE_APOSTROPHE        40
  59. #define SCANCODE_GRAVE            41
  60.  
  61. #define SCANCODE_LEFTSHIFT        42
  62. #define SCANCODE_BACKSLASH        43
  63.  
  64. #define SCANCODE_Z            44
  65. #define SCANCODE_X            45
  66. #define SCANCODE_C            46
  67. #define SCANCODE_V            47
  68. #define SCANCODE_B            48
  69. #define SCANCODE_N            49
  70. #define SCANCODE_M            50
  71. #define SCANCODE_COMMA            51
  72. #define SCANCODE_PERIOD            52
  73. #define SCANCODE_SLASH            53
  74.  
  75. #define SCANCODE_RIGHTSHIFT        54
  76. #define SCANCODE_KEYPADMULTIPLY        55
  77.  
  78. #define SCANCODE_LEFTALT        56
  79. #define SCANCODE_SPACE            57
  80. #define SCANCODE_CAPSLOCK        58
  81.  
  82. #define SCANCODE_F1            59
  83. #define SCANCODE_F2            60
  84. #define SCANCODE_F3            61
  85. #define SCANCODE_F4            62
  86. #define SCANCODE_F5            63
  87. #define SCANCODE_F6            64
  88. #define SCANCODE_F7            65
  89. #define SCANCODE_F8            66
  90. #define SCANCODE_F9            67
  91. #define SCANCODE_F10            68
  92.  
  93. #define SCANCODE_NUMLOCK        69
  94. #define SCANCODE_SCROLLLOCK        70
  95.  
  96. #define SCANCODE_KEYPAD7        71
  97. #define SCANCODE_CURSORUPLEFT        71
  98. #define SCANCODE_KEYPAD8        72
  99. #define SCANCODE_CURSORUP        72
  100. #define SCANCODE_KEYPAD9        73
  101. #define SCANCODE_CURSORUPRIGHT        73
  102. #define SCANCODE_KEYPADMINUS        74
  103. #define SCANCODE_KEYPAD4        75
  104. #define SCANCODE_CURSORLEFT        75
  105. #define SCANCODE_KEYPAD5        76
  106. #define SCANCODE_KEYPAD6        77
  107. #define SCANCODE_CURSORRIGHT        77
  108. #define SCANCODE_KEYPADPLUS        78
  109. #define SCANCODE_KEYPAD1        79
  110. #define SCANCODE_CURSORDOWNLEFT        79
  111. #define SCANCODE_KEYPAD2        80
  112. #define SCANCODE_CURSORDOWN        80
  113. #define SCANCODE_KEYPAD3        81
  114. #define SCANCODE_CURSORDOWNRIGHT    81
  115. #define SCANCODE_KEYPAD0        82
  116. #define SCANCODE_KEYPADPERIOD        83
  117.  
  118. #define SCANCODE_LESS            86
  119.  
  120. #define SCANCODE_F11            87
  121. #define SCANCODE_F12            88
  122.  
  123. #define SCANCODE_KEYPADENTER        96
  124. #define SCANCODE_RIGHTCONTROL        97
  125. #define SCANCODE_CONTROL        97
  126. #define SCANCODE_KEYPADDIVIDE        98
  127. #define SCANCODE_PRINTSCREEN        99
  128. #define SCANCODE_RIGHTALT        100
  129. #define SCANCODE_BREAK            101    /* Beware: is 119     */
  130. #define SCANCODE_BREAK_ALTERNATIVE    119    /* on some keyboards! */
  131.  
  132. #define SCANCODE_HOME            102
  133. #define SCANCODE_CURSORBLOCKUP        103    /* Cursor key block */
  134. #define SCANCODE_PAGEUP            104
  135. #define SCANCODE_CURSORBLOCKLEFT    105    /* Cursor key block */
  136. #define SCANCODE_CURSORBLOCKRIGHT    106    /* Cursor key block */
  137. #define SCANCODE_END            107
  138. #define SCANCODE_CURSORBLOCKDOWN    108    /* Cursor key block */
  139. #define SCANCODE_PAGEDOWN        109
  140. #define SCANCODE_INSERT            110
  141. #define SCANCODE_REMOVE            111
  142.  
  143. #define KEY_EVENTRELEASE 0
  144. #define KEY_EVENTPRESS 1
  145.  
  146. #define MAX_KEYNAME_LEN 20
  147.  
  148. /* Initialize keyboard handler (brings keyboard into RAW mode). Returns */
  149. /* 0 if succesful, -1 otherwise. */
  150.     int keyboard_init(void);
  151. /* Similar, but returns console fd if succesful. */
  152.     int keyboard_init_return_fd(void);
  153. /* Set event handler invoked by keyboard_update(). */
  154.     typedef void (*__keyboard_handler) (int scancode, int press);
  155.     void keyboard_seteventhandler(__keyboard_handler handler);
  156. /* Return keyboard to normal state. */
  157.     void keyboard_close(void);
  158. /* Read raw keyboard device and handle events. Returns 0 if no event. */
  159.     int keyboard_update(void);
  160. /* Similar to keyboard_update, but wait for an event to happen. */
  161. /* [This doesn't seem to work very well -- use select on fd] */
  162.     void keyboard_waitforupdate(void);
  163.  
  164. /* keyboard_init sets default event handler that keeps track of complete */
  165. /* keyboard state: */
  166.  
  167. /* Result of keypressed. */
  168. #define KEY_NOTPRESSED 0
  169. #define KEY_PRESSED 1
  170.  
  171. /* Modes for translatekeys. */
  172. #define TRANSLATE_CURSORKEYS 1    /* Map cursor block to keypad cursor. */
  173. #define TRANSLATE_DIAGONAL 2    /* Map keypad diagonal to keypad cursor. */
  174. #define TRANSLATE_KEYPADENTER 4    /* Map keypad enter to main enter key. */
  175. #define DONT_CATCH_CTRLC 8    /* Disable Crtl-C check. */
  176.  
  177. /* Revert to default handler. */
  178.     void keyboard_setdefaulteventhandler(void);
  179. /* Return pointer to buffer holding state of each key (scancode). */
  180. /* Value 1 corresponds to key that is pressed, 0 means not pressed. */
  181.     char *keyboard_getstate(void);
  182. /* Force keyboard state to nothing pressed (all zeroes). */
  183.     void keyboard_clearstate(void);
  184. /* Let default handler translate cursor key block events to numeric keypad */
  185. /* cursor key events and other translations. */
  186.     void keyboard_translatekeys(int mask);
  187.  
  188. /* Return nonzero if key is depressed. */
  189.     int keyboard_keypressed(int scancode);
  190.  
  191. #ifdef __cplusplus
  192. }
  193.  
  194. #endif
  195. #endif
  196.